#include<set>
#include<iostream>
#include<unordered_map>
using namespace std;
int main()
{
	unordered_map<string, set<int>> mp;
	string s1;int n;cin >> n;
	for(int i = 1; i <= n ; i++)
	{
		int num;cin >> num;
		for (int j = 1; j <= num; j++)
		{
			cin >> s1;
			mp[s1].insert(i);
		}
	}
	int x;cin >> x;
	while (x--)
	{
		string s2;cin >> s2;
		for (auto v : mp[s2])
		{
			cout << v << ' ';
		}
		cout << endl;
	}
	return 0;
}
//#include<iostream>
//#include<string>
//#include<vector>
//#include<cstring>
//#include<unordered_map>
//using namespace std;
//int main()
//{
//	string s1;unordered_map<int,vector<string>> mp;
//	int n;cin >> n;
//	for (int i = 1; i <= n; i++)
//	{
//		int num;cin >> num;
//		for (int j = 1; j <= num; j++)
//		{
//			string ch;cin >> ch;
//			mp[i].push_back(ch);
//		}
//	}
//	int u;cin >> u;
//	while (u--)
//	{
//		string s2;cin >> s2;
//		for (int i = 1; i <= n; i++)
//		{
//			for (auto v : mp[i])
//			{
//				if (v.find(s2) < 1e6) {
//					cout << i << ' ';
//					break;
//				}
//			}
//		}
//		cout << endl;
//	}
//	return 0;
//}